Database systems may manage large amounts of data and distribute or replicate the data across multiple nodes. These nodes may also be in different locations and communicate through a network. To reliably store data in the distributed database system, it is essential that the nodes be able to communicate to coordinate the replication of data. One example involves electing a leader of the group of nodes. This leader can then coordinate the storing of data in the distributed database system.
If for any reason the leader has a failure or there is a failure from one of the computing devices being able to reach the leader, a process should be in place to elect a new leader. Often, this involves a new election round to be held among the nodes. This generally required highly specific time synchronization and the need to know the prior state of the election.